/**
 * 定义：JSXText 节点表示 JSX 中的文本内容。它通常用于表示 JSX 元素中的文本，例如在 <div>Hello</div> 中的 "Hello"。
 */

const babel = require('@babel/core');
const parser = require('@babel/parser');
const traverse = require('@babel/traverse').default;
const generate = require('@babel/generator').default;

// 要解析的代码
const code = `<div>Hello, World!</div>`;

// 解析代码为 AST
const ast = parser.parse(code, { plugins: ['jsx'] });

// 定义 visitor
const visitor = {
    JSXText(path) {
        console.log(`Found JSX Text: ${path.node.value}`);
        path.node.value = path.node.value.toUpperCase(); // 将文本转换为大写
    }
};

// 遍历 AST
traverse(ast, visitor);

// 生成新的代码
const { code: transformedCode } = generate(ast);
console.log(transformedCode);